* Содержание                                                            :TOC:
- [[#концепции][Концепции]]
  - [[#основные][Основные]]
    - [[#система-децентрализованной-идентификации-через-свидетельства-электронными-подписями][Система децентрализованной идентификации через свидетельства электронными подписями]]
    - [[#верифицируемая-система-принятия-решений-открытым-голосованием][Верифицируемая система принятия решений открытым голосованием]]
- [[#сценарии][Сценарии]]
  - [[#user][User]]
    - [[#sign-in][Sign in]]
      - [[#success][success:]]
    - [[#sign-up][Sign up]]
      - [[#success-1][success:]]
  - [[#book][Book]]
    - [[#introduction--представление][Introduction — представление]]
    - [[#sign--подписать][Sign — подписать]]
  - [[#profile][Profile]]
    - [[#управление-ключами][Управление ключами]]
      - [[#отображение-публичного-ключа][Отображение публичного ключа]]
      - [[#генерация-ключей][Генерация ключей]]
        - [[#generate-key-pair][Generate key pair]]
        - [[#update-keys][Update keys]]
- [[#модели][Модели]]
  - [[#record][Record]]

* Концепции
** Основные
*** Система децентрализованной идентификации через свидетельства электронными подписями
*** Верифицируемая система принятия решений открытым голосованием

* Сценарии
** User
   Точка входа не аутентифицированного пользователя.

*** Sign in
    * email
    * password
**** success:
     redirects ** Book

*** Sign up
    * email
    * password
**** success:
     redirects ** Book

** Book
   Точка входа аутентифицированного пользователя.

   Записи книги. Аналог транзакций.

*** Introduction — представление
    Форма:
    * *Имя
    * Отчество
    * Фамилия
    * Дата рождения
    * Почтовый адрес

    При отправке, создаётся запись в книге.

    Пример: [[file:Examples/Introduction.yml][Examples/Introduction.yml]]

*** Sign — подписать
    Кнопка под каждой записью, кроме самих подписей.

    При нажатии, подписывается Record, создаётся Record подписи, и они
    связываются по signed_record_id в Record подписи.

** Profile
   Страница профиля пользователя.

*** Управление ключами
**** Отображение публичного ключа
**** Генерация ключей
***** Generate key pair
      С помощью OpenPGP.js создаёт пару.

      Помещает их в соответствующие textarea.

***** Update keys
      Отправляет Public key в БД.

      Отправляет Private key в localStorage.

      Всё что хранилось до этого пока пропадает.

* Модели
** Record
   * Content
   * Author Id

